Code block level error correction and media access control (mac) level hybrid automatic repeat requests  to mitigate bursty puncturing and interference in a multi-layer protocol wireless system

ABSTRACT

Various features pertain to mitigating interference on downlink/uplink channels caused by bursty traffic transmissions. A transmitting node encodes data into transport blocks, each including code blocks in which the data is encoded. The transport blocks are then wirelessly transmitted over a channel specific to a receiving node, where the code blocks of the transport blocks are transmitted without redundant parity code blocks or with a desired amount of redundant parity code blocks. The transmitting node then receives an indication from the receiving node of a number of failed data code blocks. The transmitting node generates an error correction code sufficient to recover all of the failed code blocks and transmits the error correction code within a new transport block along with new data. The receiving node receives the new transport block including the error correction code and then recovers the failed code blocks from the error correction code via erasure decoding, a combination of erasure decoding and error decoding, and/or other suitable techniques at the code block level.

CLAIM OF PRIORITY under 35 U.S.C. § 119

The present Application for Patent is a continuation of U.S. patentapplication Ser. No. 15/067,914, filed Mar. 11, 2016, entitled “CODEBLOCK LEVEL ERROR CORRECTION AND MEDIA ACCESS CONTROL (MAC) LEVEL HYBRIDAUTOMATIC REPEAT REQUESTS TO MITIGATE BURSTY PUNCTURING AND INTERFERENCEIN A MULTI-LAYER PROTOCOL WIRELESS SYSTEM,” which claimed priority toProvisional Application No. 62/133,395, entitled “Code Block Level ErrorCorrection and Media Access Control (MAC) Level Hybrid Automatic RepeatRequests to Mitigate Bursty Puncturing and Interference in a Multi-LayerProtocol Wireless System Device Assisted Inline Storage Encryption,”filed Mar. 15, 2015, both of which Applications are assigned to theassignee hereof and expressly incorporated herein by reference in theirentirety.

BACKGROUND Field

The present disclosure pertains to techniques to mitigate the effects ofbursty puncturing and interference in wireless transmissions byimplementing a combination of code block level error correction andmedia access control (MAC) level hybrid automatic repeat requests(HARQ).

Background

In some wireless communication systems, an access node provides wirelessconnectivity to user equipment/devices (UE) within a network region. Theaccess node and UEs may communicate over logical channels defined over afrequency spectrum (e.g., using time division multiplexing, spreadspectrum, orthogonal frequency division multiple access (OFDMA). etc.).Downlink communications from the access node to a particular UE may beperformed over a downlink channel. In order to support mission critical(MiCr) communications, bursty puncturing may be used by the access nodeto inject messages in a downlink channel. Such bursty mission criticaltraffic may puncture or interfere with resources already assigned toother UEs for nominal data transmission. For instance, bursty puncturingmission critical traffic may be transmitted at a higher transmissionpower than other downlink/uplink transmissions and hence causingintercell (for both downlink DL and uplink UL channels) and intracell(for UL channel) bursty interference. Consequently, such burstypuncturing or interference of mission critical transmissions between afirst access node and a first UE, i.e., in a first network cell, maycause interference in nearby/neighboring communications, e.g., between asecond access node and a second UE in a neighboring/nearby secondnetwork cell.

Therefore, a solution is needed that mitigates interference ondownlink/uplink channels caused by bursty traffic transmissions and/orcorrects for strong bursty interference.

SUMMARY

In one aspect, a method operational on a transmitting device includes:encoding data into one or more transport blocks, each transport blockincluding a plurality of code blocks in which the data is encoded;wirelessly transmitting the one or more transport blocks over a channelspecific to a receiving device, wherein the code blocks within thetransport blocks are transmitted without redundancy information or witha desired amount of redundancy information; receiving, from thereceiving device, a total number of failed code blocks from thetransmitted one or more transport blocks; generating an error correctioncode over the code blocks within the one or more transport blocks,wherein the error correction code is sufficient to recover the totalnumber of failed code blocks; and transmitting the error correction codewithin a new transport block.

In another aspect, a transmitting device includes: a wirelesstransceiver coupled to the processing circuit and adapted to wirelesslytransmit to one or more receiving devices; and a processing circuitcoupled to the wireless transceiver and adapted to encode data into oneor more transport blocks, each transport block including a plurality ofcode blocks in which the data is encoded; wirelessly transmit the one ormore transport blocks over a channel specific to a receiving device,wherein the code blocks within the transport blocks are transmittedwithout redundancy information or with a desired amount of redundancyinformation; receive, from the receiving device, a. total number offailed code blocks from the transmitted plurality of one or moretransport blocks; generate an error correction code over the code blockswithin the one or more transport blocks, wherein the error correctioncode is sufficient to recover the total number of failed code blocks;and transmit the error correction code within a new transport block.

In yet another aspect, a method operational on a user equipmentincludes: receiving one or more transport blocks over a channel from atransmitting device, where each transport block includes a plurality ofcode blocks in which data is encoded, the code blocks within thetransport blocks received without redundancy information or with adesired amount of redundancy information; attempting to decode data inthe code blocks received within the one or more transport blocks;sending, to the transmitting device, a total number of failed codeblocks within the received one or more transport blocks; receiving a newtransport block including an error correction code sufficient to recoverthe total number of failed code blocks; and recovering the failed codeblocks from the error correction code.

In still yet another aspect, a receiving device includes: a wirelesstransceiver; and a processing circuit coupled to the wirelesstransceiver and adapted to: receive one or more transport blocks over achannel from a transmitting device, where each transport block includesa plurality of code blocks in which data is encoded, the code blockswithin the transport blocks received without redundancy information orwith a desired amount of redundancy information; attempt to decode datain the code blocks received within the one or more transport blocks;send, to the transmitting device, a total number of failed code blockswithin the received one or more transport blocks; receive a newtransport block including an error correction code sufficient to recoverthe total number of failed code blocks; and recover the failed codeblocks from the error correction code.

DRAWINGS

Various features, nature, and advantages may become apparent from thedetailed description set forth below when taken in conjunction with thedrawings in which like reference characters identify correspondinglythroughout.

FIG. 1 illustrates an exemplary wireless network in which code blocklevel error correction may be implemented to mitigate bursty puncturingand interference.

FIG. 2 illustrates an exemplary protocol stack that may be implementedfor wireless transmissions over the exemplary wireless network of FIG.1.

FIG. 3 illustrates an exemplary channel between a transmitting device(e.g., an access node) and a receiving device (e.g., receiving UE).

FIG. 4 illustrates a first example of operations between a userequipment (UE) and an access node to mitigate bursty puncturing and/orinterference.

FIG. 5 illustrates a second example of operations between a userequipment (UE) and an access node to mitigate bursty puncturing and/orinterference.

FIG. 6 illustrates exemplary bursty puncturing and/or interference thatmay be perceived on a wireless channel due to bursty puncturingtransmissions.

FIG. 7 illustrates a first optimization that only transmits MAC levelHARQ parity CBs (for error correction) if they are actually needed.

FIG. 8 illustrates another optimization in which the time gap or delaybetween the reception of a transport block (TB) and a correspondingacknowledgment (ACK) is tightened or eliminated.

FIG. 9 illustrates the optimization approach of FIG. 6 in which the timegap or delay between the reception of a TB and a corresponding ACK istightened or eliminated while MAC layer coding is used to recover anyerrors in the last code block in a transport block.

FIG. 10 illustrates an exemplary comparison graph of the performance ofdifferent encodings with and without error correction coding.

FIG. 11 is a block diagram illustrating an example of a hardwareimplementation for an apparatus employing a processing system that mayexploit the systems, methods and apparatus of FIGS. 1-9.

FIG. 12 is a block diagram illustrating exemplary components of anaccess node or other transmitting device.

FIG. 13 is a block diagram illustrating exemplary components of a mobiledevice such as a UE or other receiving device.

FIG. 14 is a flow diagram broadly illustrating a method operational onan access node other transmitting device.

FIG. 15 is a flow diagram further illustrating the method operational onan access node other transmitting device.

FIG. 16 is a flow diagram illustrating a method operational on a mobiledevice or other receiving device.

FIG. 17 is a flow diagram further illustrating the method operational ona mobile device or other receiving device.

DETAILED DESCRIPTION

In the following description, specific details are given to provide athorough understanding of the embodiments. However, it will beunderstood by one of ordinary skill in the art that the embodiments maybe practiced without these specific detail. For example, circuits may beshown in block diagrams in order not to obscure the embodiments inunnecessary detail. In other instances, well-known circuits, structures,and techniques may not be shown in detail in order not to obscure theembodiments.

Exemplary Operating Environment

FIG. 1 illustrates an exemplary wireless network in which code blocklevel error correction may be implemented to mitigate bursty puncturingand interference. The wireless network may include a plurality ofwireless network cells 102, 104, and 106 in which a corresponding accessnode 108, 110, and 112 in each cell provides wirelessconnectivity/service to user equipment/devices UEs 114, 116, 118, 120 inthe cell. A UE device may include a mobile device, mobile phone, clientdevice, wireless device, communication device, computing device, etc.,capable of transmitting and receiving signals to/from an access node. Anaccess node may include a cell node (eNodeB or eNB), a base station,etc., that connects to a cellular operator's network and eventuallyconnects to other networks (e.g., internet, telephone network, etc.). Inthis example, a first access node A 108 may communicate with a first UE114 within a first wireless cell 102. Similarly, a second access node B110 may communicate with a second UE 116 within a second wireless cell104. If the second access node B 110 sends a mission critical traffic(bursty traffic) to the second UE 116, this transmission may causeinterference on the downlink channel and/or uplink channel between thefirst access node A 108 and the first UE 114. According to one aspect,error correction may be implemented on the code blocks transmitted onthe downlink channel between the first access node A 108 and the firstUE 114 to mitigate such interference caused by bursty traffictransmissions in neighboring cells (e.g., uplink mission criticaltransmissions in the same cell or any mission critical transmissions inneighboring cell).

FIG. 2 illustrates an exemplary protocol stack that may be implementedfor wireless transmissions over the exemplary wireless network ofFIG. 1. In this example, the protocol stack 202 may include three layers204, 206, and 208. A first layer 204 may include a physical (PHY) layer210. A second layer 206 may include a Medium Access Control (MAC) layer212, a Radio Link Control (RLC) layer 214, and/or a Packet DataConvergence Control layer 216. A third layer 208 may include a RadioResource Control (RRC) layer 218, an Internet Protocol (IP) layer 220,and/or a Non-Access Stratum (NAS) layer 222. The PHY layer 210 may serveto carry all information from the transport channels of the MAC layer212 over the air interface. The PHY layer 210 may also be used toperform link adaptation, power control, cell search, and othermeasurements for the RRC layer 218. The MAC layer 212 may providelogical channels to the RLC layer 214 that it multiplexes into thephysical layer transport channels. The MAC layer 212 may also managehybrid automatic repeat requests (HARQ), error correction (EC),prioritization of the logical channels for the same UE, and dynamicscheduling between UEs. An access node may use HARQ for repeating atransmission over a downlink channel until the receiving UE can decodethe transmission. HARQ is a combination of high-rate forwarderror-correcting coding and ARQ (Auto Repeat Request) error-control. Areceiver at a UE detecting a corrupted message will request a newmessage from the sending access node. In HARQ, the original data isencoded with a forward error correction (FEC) code, and the associatedparity bits are either immediately sent along with the message or onlytransmitted upon request when a receiver detects an erroneous message.

FIG. 3 illustrates an exemplary channel between a transmitting device(e.g., an access node) and a receiving device (e.g., receiving UE orclient device). In one example, this channel 302 may be a Long TermEvolution (LTE) or 5G physical downlink shared channel (PDSCH). In LTE,transport or transmission blocks (TB) 304 are broken into multiple codeblocks (CB) 306 based on the TB size. In addition to a TB level cyclicredundancy check (CRC), each CB of the TB may also be transmitted withits own CRC. In third generation partnership project (3GPP) long termevolution (LTE) wireless communications systems, for data channels suchas a physical downlink shared channel (PDSCH), a HARQ process is definedfor each transport block (TB) within a 1 milli-seconds (ms) transmissiontime interval (TTI). In each HARQ process, a 24 bit cyclic redundancycheck (CRC) is attached to each TB. A TB CRC is used for error detectionand for generating a HARQ positive acknowledgement (ACK) or negativeacknowledgement (NACK). A CB CRC may be utilized at the receiver toenhance power saving and efficient memory utilization. In one example, aTB may include up to sixteen (16) or more code blocks (CBs) within aTTI. At the receiver, if one of the CBs is in error, then a TB CRCfailure occurs. As a result of the failure, a NACK is signaled to thetransmitter for HARQ feedback. Upon receiving the NACK, the transmitterretransmits the same TB, and therefore the same set of CBs, in anappropriate later TTI.

Exemplary Mitigation of Bursty Puncturing Interference on Downlink

FIG. 4 is a diagram 400 illustrating exemplary operations of a userequipment (UE) 402, such as UE-a 114 of FIG. 1, and an access node 404,such as Access Node-A 108 of FIG. 1, and also illustrating informationand signals exchanged there-between to efficiently transfer data whilemitigating bursty puncturing and interference. The access node encodesdata into transport blocks, each transport block including a set of codeblocks without redundancy information (such as by having no redundantparity code blocks) or with a desired (or selected) amount of redundancyinformation (such as by having a desired/selected amount or number ofredundant parity code blocks) 406. The access node then transmits thetransport blocks without redundant parity code blocks or with thedesired/selected amount of redundant parity code blocks over a wirelesschannel specific to the User Equipment 408, such as a particular 5Gchannel, where 5G refers to fifth-generation wireless broadbandtechnology based on the IEEE 802.11ac standard. Generally speaking, 5Gprovides better speeds and coverage than 4G and also provides additionalnew services to 4G.

The UE receives the transport blocks including the set of code blockswithout redundant parity code blocks or with the desired amount ofredundant parity code blocks 410. The UE may then attempt to decode thedata in the code blocks and detect and then count any code blocks thatcannot be decoded (i.e. the UE counts failed code blocks) 412. The UEsends the count of the total number of failed code blocks to the accessnode 414. The access node receives the count of the total number offailed code blocks 416. The access node determines an error correctioncode over the code blocks that is sufficient to recover the total numberof failed code blocks based on the number of failed code blocks and anexpected puncturing rate within the transmission of the subsequenttransport block 418. The access node may generate the error correctioncode that includes parities sufficiently long to recover the totalnumber of failed code blocks 420.

The access node transmits the error correction code that includes codedbits within parity code blocks of a new transport block 422. As will beexplained in greater detail below, in some examples, the new transportblock is transmitted following a delay or gap that is sufficient toallow the receiver to decode all of the code blocks of the priortransport block so that an error in any of the code blocks of the priortransport block (including the last CB of that transport block) can becorrected using the error correction code within the new transportblock. In other examples, the new transport block is transmitted withouta delay sufficient to allow the receiver to decode all of the codeblocks of the prior transport block. In either case, any errors in theprior transport block that cannot be corrected by the error correctioncode within the new transport block are instead recovered using a mediaaccess control (MAC) layer HARQ. The UE receives the new transport blockand recovers failed code blocks using the error correction code 424. Ifthe UE is incapable of correcting all failed code blocks, the UErequests retransmission of additional parity CBs MAC error correctionand MAC HARQ. In response, the access node retransmits a new transportblock in response to the MAC HARQ 428.

In another example, the amount of CB redundancies may be managed moreintelligently. FIG. 5 illustrates a second example of operations betweena user equipment (UE) and an access node to mitigate bursty puncturingand/or interference. In this example, the number of redundant parityCB's in the first transmission may be determined by the long term burstytransmission/interference duty cycle. The amount of first transmissionparity code blocks should be sufficient to combat burstyinterference/puncturing in the first HARQ transmission to ensure highefficiency and low latency PHY/MAC layer HARQ. On the other hand, uponreceiving a subframe transport block) including a plurality of codeblocks, the actual number of failed CBs could be derived and therequired number of CB's to recover data CB failures could be fed back(e.g., provided, sent, etc.) to the access node for MAC layerretransmission to achieve high reliability and robustness against burstyinterference/puncturing.

The access node encodes data into transport blocks, each transport blockincluding a set of code blocks without redundant parity code blocks 506.The access node may then transmit the transport blocks with an amount ofMAC CB redundancy determined by, for example, long term statistics overa wireless channel specific to the User Equipment 508, such as aparticular 5G channel, where 5G refers to fifth-generation wirelessbroadband.

The UE receives the transport blocks including the set of code blockswith an amount of MAC CB redundancy driven by long term statistics 510.The UE may then attempt to decode the data in the code blocks, anddetect and then count any code blocks that cannot be decoded (i.e. theUE counts failed code blocks) 512. The UE sends an estimated number ofparity code blocks needed to the access node 514. The access nodereceives the parity code blocks 516. The access node determines an errorcorrection code over the code blocks that is sufficient to recover thenumber of failed code blocks based on the number estimated by the UEand/or expected from the access node within the transmission of thesubsequent transport block 518. The access node may generate the errorcorrection code that includes parities sufficiently long to recover thetotal number of failed code blocks 520.

The access node transmits parity code blocks of the data code blocksbased on the error correction code in a new transport block 522. The UEreceives the new transport block and recovers failed code blocks usingthe error correction code 524. If the UE is incapable of correcting allfailed code blocks, the UE requests retransmission of additional parityCBs MAC error correction and MAC HARQ 526. In response, the access noderetransmits one or more additional transport blocks in response to theMAC HARQ 528.

FIG. 6 illustrates an example of bursty interference that may bepresent, received, and/or perceived on a wireless channel 602 due tobursty traffic that results in puncturing interference of the typeaddressed by the procedure of FIGS. 4 and/or 5. In this example, a firstbursty traffic transmission 606 and/or a second bursty traffictransmission 608 interfere with transmitted code blocks 604 (e.g.,physical-layer downlink shared channel (PDSCH) traffic). Note that LTEsystems are currently not designed to handle time domain burstypuncturing or interference within one transmission time interval (TTI).In LTE, code blocks may be interleaved over frequency which helps enablequicker pipeline processing. However, there is little time domaininterleaving for each CB in a large TB size (e.g., one CB occupying onesymbol). Consequently, if a single CB is “wiped out” or corrupted by thebursty traffic 606 or 608, then the entire transport block 610 must beresent. Thus, in current LTE systems, retransmission occurs at the TBlevel instead of the CB level (i.e., if one CB is punctured, the entireTB needs to be retransmitted).

To address this problem, a dual coding scheme and HARQ (e.g., aninter-code block level code and MAC level HARQ) is implemented tomitigate puncturing interference. Inter-CB coding may be applied to thecode blocks to address bursty traffic causing puncturing interference.Additionally, to more intelligently reseed code blocks only ifnecessary, MAC level HARQ may be implemented to allow a receiver (e.g.,receiving UE) to inform a sender (e.g., transmitting access node) if acode block is erroneously received (e.g., the code block cannot becorrectly decoded), which may be exploited as described above inconnection with FIGS. 4 and/or 5.

In one example, an inter-code block error correction code, a MAC layerHARQ, and a separate PHY layer HARQ may be implemented. In thisapproach, no code block parity is transmitted with the original (first)code block transmission (i.e., no redundant parity code blocks for codeblocks is transmitted, or a few redundant CB's could be transmitted ifthe bursty puncturing/interference duty cycle is high). The PHY layerHARQ is requested if such CB failure is greater than or equal to athreshold number by, for example, comparing the count of failed CBsprovided by the UE with a (predetermined or adjustable) maximumpermissible error threshold. Additionally, MAC layer HARQ is used torequest parities for the inter-block error correction code if the numberof CB failures is less than the threshold number. Then, the transmittingdevice (e.g., access node) can compute an error correction code (parityCBs) over the whole set of data code blocks in which those failed CBsoccurred, as already explained, where the number of parities of theerror correction code is sufficient to recover the number of failed CBs.These parity CBs (e.g., coded bits representative of the errorcorrection code for the relevant CBs) are then transmitted to thereceiving device (e.g., receiving UE) which can use the parity CBs alongwith previously successfully decoded CBs in the relevant transportblocks (TBs) to reconstruct the previously failed CBs.

In another example, the number of parity code blocks for the first,second and third transmissions may be based on semi-static parameters,which are fed back less frequently (e.g., every 5/10/20 transmissiontime intervals (TTIs) as opposed to every TTI). In this manner, thefirst transmission redundancy could be used to ensure efficiency whilethe retransmission parities are used to guarantee high reliability.Overall, semi-static number of parity code block overhead may help toreduce uplink (UL) feedback overhead, especially in the case where theUL burst for every TTI is short.

The inter-code block error correction code may implement errorcorrection (e.g., forward error correction FEC) over the code blocks inone transport block or over multiple transport blocks. Note that theinter-CB code may be applied to protect CBs from bursty traffic that maycause puncturing and interference of specific code blocks. MAC layerHARQ is implemented by sending a message from the receiving device tothe transmitting device indicating a number of failed code blocks withina preceding number of transport blocks (TB). For instance, once all codeblocks within a transport block have been decoded at the receivingdevice, a MAC level ACK is sent if all CBs are successfully decoded or aMAC level NACK with the number of failed CBs is sent if at least onereceived CB was not decodable or had errors.

In contrast to PHY layer HARQ which resends the complete transport block(TB) upon receiving a NACK, MAC layer HARQ results in sending only asufficient number of parity CBs, covering the whole set of CBs inpreceding relevant transport blocks along with new data CBs, to be ableto correct the failed CBs. In this approach, the MAC layer HARQ does notneed to identify the specific CBs that failed, but only the number ofCBs that failed (within a number or preceding transport blocks or TTIs).

A receiving UE may ascertain if any of the received code blocks within asequence of one or more transport blocks are undecodable (i.e.,erroneous code blocks). If one or more code blocks are undecodable, thena MAC layer HARQ is sent along with a count of the total number offailed code blocks. The transmitting access node may then compute anappropriately long error correcting code based on the number of failedcode blocks and total number of code blocks in the relevant transportblock(s). This error correcting code may be transmitted as parity codeblocks within a subsequent transport block. The receiving UE may thenuse the error correcting code and the previous successfully receivedcode blocks (within the relevant transport block(s)) to recover thefailed code blocks.

In one implementation, no redundancy (e.g., no inter-code block errorcorrection code) is applied in an original (first) transmission of a setof code blocks (e.g., transport block). However, if a number q of codeblocks are punctured in the original (first) transmission, the PHY layerHARQ will report ACK but the MAC layer HARQ will report the number offailed CBs (e.g., due to busty traffic puncturing). Consequently, theMAC layer retransmits q+r parity CBs and (N-q-r) new data CBs. The q+rparity CBs are used at the receiver to recover the lost q CBs inoriginal (first) transmission along with an additional r erasuresbudgeted in the retransmission. In the case of a high puncturing ratio,multiple TTI MAC retransmissions may be used. Note that the (N-q-r) newdata CBs may be MAC-FEC encoded jointly with CBs in the previoustransmission to form (q+r) parity CBs. Or alternatively, the (q+r)parity CBs could be merely based on the previous transmission's CBswithout jointly encoding the new data CBs.

Note that the MAC layer HARQ and inter-code block error correction codemay be applied over a downlink channel (e.g., between an access node anda UE) and/or over an uplink channel (e.g., between a UE and an accessnode).

FIG. 7 illustrates a first optimization that only transmits MAC levelHARQ parity CBs (for error correction) if they are actually needed. Inone approach, MAC level HARQ parity code blocks 706 may be automaticallyadded after a plurality of nominal code blocks. However, this approach702 is potentially wasteful as it sends MAC level HARQ parity CBs 706even if all the nominal code blocks are correctly received. According toan alternative or optimized approach 708, MAC level HARQ parity codeblocks 713 of a new transport block 614 are added after a plurality ofnominal code blocks only if and when they are needed. That is, thisapproach 708 sends MAC level HARQ parity CBs 713 only if one or morecode blocks 716 and 718 are received with errors (i.e., code blocksincorrectly received). In this example, the new transport block 714 istransmitted by the access node following a delay (not specifically shownin the figure) that is sufficient to allow the UE to decode all of thecode blocks of the prior transport block 712 (including a last codeblock 717) so that an error in any of the code blocks of the priortransport block (710, 712) can be corrected using the error correctioncode (e.g. parity code blocks 713) within the new transport block 714.

As such, in at least some examples, no CB-level parity is needed uponnew transmissions. The PHY HARQ will report acknowledge (ACK) at the PHYlayer when the number of CBs not-acknowledged (NAK) is less than apredetermined or adjustable threshold. MAC FEC based parity-CBs are sentat MAC layer retransmission. Only the number of a CB NAK and not thelocation of the CB NAK is provided in the feedback. Bursty CB failuresmay be recovered via erasure decoding. Extra data CB's can be sent inthe same MAC layer transmission TTI (along with the error correctioncode parity blocks) to achieve a selected tradeoff between efficiencyand /robustness.

FIG. 8 illustrates an optimization in which a time gap or delay betweenthe reception of a transport block (TB) and a correspondingacknowledgment (ACK) is tightened, reduced, or eliminated. Currently, atime gap is used between reception of a TB and transmission of thecorresponding ACK, which may be sufficient to allow the receiving UE toattempt to decode all of the received code blocks. However, the MAClayer coding may help reduce or eliminate the time gap to improve theoverall processing pipeline, i.e. procedures are provided to improve thedecoding timeline, particularly within a self-contained time domainduplexing (TDD) timeline scenario. For example, as the last code blockin each TB 804. 805, 806, and 807 is received, an ACK 808, 810, 812, 814may be sent prior to that last code block (symbol) being fully decoded.The probability that only the last code block in the TB is erroneous islow. However, if all CBs in a TB are correctly received and decodedexcept the last CB, then this last CB can be recovered through MAC layererror correction and HARQ as described above. That is, with thisoptimization, a new transport block is transmitted without a delaysufficient to allow the receiver to decode all of the code blocks of aprior transport block. Any errors in the prior transport block thatcannot be corrected by the error correction code within the newtransport block are instead recovered using a MAC layer error correctionand HARQ.

FIG. 9 further illustrates the optimization approach of FIG. 8 in whichthe time gap between the reception of a transport block (TB) and acorresponding acknowledgment (ACK) is tightened or eliminated to permita new transport block to be more promptly transmitted, while MAC layercoding is used to recover any errors in the last code block in atransport block. Here, a plurality of code blocks 904, 906 are sent andthe ACK for each TB is sent prior to the last code blocks 910 and 912being fully decoded to ascertain if the data therein was correctlyreceived. Consequently, MAC layer error correction and HARQ are used tosend parity CBs 914 that provide redundancy to recover any errors in thelast code blocks 910 and 912, even though it is not yet known whetherthere are any errors within those code blocks. In this manner, HARQround trip time (RTT) timelines can be significantly tightened.

FIG. 10 illustrates an exemplary comparison graph 1002 of theperformance of different encodings with and without error correctioncoding. A first graph line 1004 represents the linear relationshipbetween throughput and puncturing rate under optimal conditions. Asecond graph line 1006 represents an exemplary performance of LTE withintra-CB level HARQ coding only. A third graph line 1008 represents anexemplary performance of the proposed multi-level coding scheme withboth intra-CB level HARQ and inter-CB level error correction. A fourthgraph line 1010 represents an exemplary performance of the proposedmulti-level coding scheme with both intra-CB level HARQ and inter-CBlevel error correction. Thus, in at least some examples describedherein, CB level FEC is applied in conjunction with MAC-layer HARQ.Redundant CB's are applied in the retransmission only where the numberof CB failures are known to an eNB (and/or the UE and are fed back toeNB upon retransmission). The amount of redundant CB's is based on anumber of CB CRC failures and an expected puncturing rate in theretransmission. A reliability and efficiency tradeoff can be achieved inat least some examples by adjusting the amount of redundancy uponretransmission.

Exemplary Systems and Methods for Efficient Code Block Level ErrorCorrection

FIG. 11 illustrates an overall system or apparatus 1100 in which thesystems, methods and apparatus of FIGS. 1-10 may be implemented. Inaccordance with various aspects of the disclosure, an element, or anyportion of an element, or any combination of elements may be implementedwith a processing system 1114 that includes one or more processingcircuits 1104. For example, apparatus 1100 may be a user equipment (UE)of a mobile communication system or an access node. Apparatus 1100 maybe used with a radio network controller (RNC). In some examples, theapparatus is implemented as a system-on-a-chip (SoC). In addition to anSoC, examples of processing circuits 1104 include microprocessingcircuits, microcontrollers, digital signal processing circuits (DSPs),field programmable gate arrays (FPGAs), programmable logic devices(PLDs), state machines, gated logic, discrete hardware circuits, andother suitable hardware configured to perform the various functionalitydescribed throughout this disclosure. Still further, the processingsystem 1114 could be a component of an access node and/or mobile device.That is, the processing circuit 1104, as utilized in the apparatus 1100,may be used to implement any one or more of the processes describedabove and illustrated in FIGS. 4, 5, 6, 7, 8 and 9 (and thoseillustrated in FIGS. 14, 15, 16 and 17, discussed below).

In the example of FIG. 11, the processing system 1114 may be implementedwith a bus architecture, represented generally by the bus 1102. The bus1102 may include any number of interconnecting buses and bridgesdepending on the specific application of the processing system 1114 andthe overall design constraints. The has 1102 links various circuitsincluding one or more processing circuits (represented generally by theprocessing circuit 1104), the storage device 1105, and amachine-readable, processor-readable, processing circuit-readable orcomputer-readable media (represented generally by a non-transitorymachine-readable medium 1106.) The bus 1102 may also link various othercircuits such as timing sources, peripherals, voltage regulators, andpower management circuits, which are well known in the art, andtherefore, will not be described any further. The bus interface 1108provides an interface between bus 1002 and a transceiver 1110. Thetransceiver 1110 provides a means for communicating with various otherapparatus over a transmission medium. Depending upon the nature of theapparatus, a user interface 1112 (e.g., keypad, display, speaker,microphone, joystick) may also be provided.

The processing circuit 1104 is responsible for managing the bus 1102 andfor general processing, including the execution of software stored onthe machine-readable medium 1106. The software, when executed byprocessing circuit 1104, causes processing system 1114 to perform thevarious functions described herein for any particular apparatus.Machine-readable medium 1106 may also be used for storing data that ismanipulated by processing circuit 1104 when executing software.

One or more processing circuits 1104 in the processing system mayexecute software or software components. Software shall be construedbroadly to mean instructions, instruction sets, code, code segments,program code, programs, subprograms, software modules, applications,software applications, software packages, routines, subroutines,objects, executables, threads of execution, procedures, functions, etc.,whether referred to as software, firmware, middleware, microcode,hardware description language, or otherwise. A processing circuit mayperform the tasks. A code segment may represent a procedure, a function,a subprogram, a program, a routine, a subroutine, a module, a softwarepackage, a class, or any combination of instructions, data structures,or program statements. A code segment may be coupled to another codesegment or a hardware circuit by passing and/or receiving information,data, arguments, parameters, or memory or storage contents. Information,arguments, parameters, data, etc. may be passed, forwarded, ortransmitted via any suitable means including memory sharing, messagepassing, token passing, network transmission, etc.

The software may reside on machine-readable medium 1106. Themachine-readable medium 1106 may be a non-transitory machine-readablemedium. A non-transitory processing circuit-readable, machine-readableor computer-readable medium includes, by way of example, a magneticstorage device (e.g., hard disk, floppy disk, magnetic strip), anoptical disk (e.g., a compact disc (CD) or a digital versatile disc(DVD)), a smart card, a flash memory device (e.g., a card, a stick, or akey drive), RAM, ROM, a programmable ROM (PROM), an erasable PROM(EPROM), an electrically erasable PROM (EEPROM), a register, a removabledisk, a hard disk, a CD-ROM and any other suitable medium for storingsoftware and/or instructions that may be accessed and read by a machineor computer. The terms “machine-readable medium”, “computer-readablemedium”, “processing circuit-readable medium” and/or “processor-readablemedium” may include, but are not limited to, non-transitory media suchas portable or fixed storage devices, optical storage devices, andvarious other media capable of storing, containing or carryinginstruction(s) and/or data. Thus, the various methods described hereinmay be fully or partially implemented by instructions and/or data thatmay be stored in a “machine-readable medium.” “computer-readablemedium,” “processing circuit-readable medium” and/or “processor-readablemedium” and executed by one or more processing circuits, machines and/ordevices. The machine-readable medium may also include, by way ofexample, a carrier wave, a transmission line, and any other suitablemedium for transmitting software and/or instructions that may beaccessed and read by a computer.

The machine-readable medium 1106 may reside in the processing system1114, external to the processing system 1114, or distributed acrossmultiple entities including the processing system 1114. Themachine-readable medium 1106 may be embodied in a computer programproduct. By way of example, a computer program product may include amachine-readable medium in packaging materials. Those skilled in the artwill recognize how best to implement the described functionalitypresented throughout this disclosure depending on the particularapplication and the overall design constraints imposed on the overallsystem.

In some examples, the processing circuit 1104 may include one or moresub-circuits and/or the machine-readable storage medium 1106 may storeone or more instructions which when executed by the processing circuit1104 causes the processing circuit to perform one or more functions. Forinstance, a transport block (TB) encoding circuit or module 1114 and/orTB encoding instructions 1128 may serve to encode data into one or moretransport blocks, each transport block including a plurality of codeblocks in which the data is encoded. The transceiver 1110 may then serveto wirelessly transmit the one or more transport blocks over a channelspecific to a receiving device, wherein the code blocks within thetransport blocks are transmitted without redundant parity code blocks orwith a desired amount of redundant parity code blocks. The transceiver1110 may also serve to receive, from the receiving device, a totalnumber of failed code blocks from the transmitted plurality of one ormore transport blocks. An error correction code generationcircuit/module 1116 and/or error correction code generation instructions1130 may serve to generate an error correction code over the code blockswithin the one or more transport blocks, wherein the error correctioncode is sufficient to recover the total number of failed code blocks.The transceiver 1110 may then transmit parity code blocks based on theerror correction code within a new transport block.

Additionally, the transceiver 1110 may serve to receive one or moretransport blocks over a channel from a transmitting device, where eachtransport block includes a plurality of code blocks in which data isencoded. The code blocks within the transport blocks may be receivedwithout redundant parity code blocks or with the desired amount ofredundant parity code blocks. A code block (CB) decoding circuit/module1120 and/or CB decoding instructions 1134 may serve to decode data inthe code blocks received within the one or more transport blocks. Afailed CB notification circuit/module and/or failed CB notificationinstructions 1126 may serve to send, to the transmitting device, a totalnumber of failed code blocks within the received one or more transportblocks. The transceiver 1110 may also serve to receive a new transportblock including parity code blocks derived from an error correction codesufficient to recover the total number of failed code blocks. A CBrecovery circuit/module 1124 and/or code block recovery instructions1138 may serve to recover the failed code blocks from the errorcorrection code.

One or more of the components, steps, features, and/or functionsillustrated in the figures may be rearranged and/or combined into asingle component, block, feature or function or embodied in severalcomponents, steps, or functions. Additional elements, components, steps,and/or functions may also be added without departing from thedisclosure. The apparatus, devices, and/or components illustrated in theFigures may be configured to perform one or more of the methods,features, or steps described in the Figures. The algorithms describedherein may also be efficiently implemented in software and/or embeddedin hardware.

The various illustrative logical blocks, modules, circuits, elements,and/or components described in connection with the examples disclosedherein may be implemented or performed with a general purpose processingcircuit, a digital signal processing circuit (DSP), an applicationspecific integrated circuit (ASIC), a field programmable gate array(FPGA) or other programmable logic component, discrete gate ortransistor logic, discrete hardware components, or any combinationthereof designed to perform the functions described herein. A generalpurpose processing circuit may be a microprocessing circuit, but in thealternative, the processing circuit may be any conventional processingcircuit, controller, microcontroller, or state machine. A processingcircuit may also be implemented as a combination of computingcomponents, e.g., a combination of a DSP and a microprocessing circuit,a number of microprocessing circuits, one or more microprocessingcircuits in conjunction with a DSP core, or any other suchconfiguration.

Hence, in one aspect of the disclosure, processing circuit 1004 may be aspecialized processing circuit (e.g., an ASIC)) that is specificallydesigned and/or hard-wired to perform at least some of the algorithms,methods, and/or blocks described in FIGS. 4, 5, 6, 7, 8 and/or 9 (and/orFIGS. 14, 15, 16 and 17 discussed below) such as those directed toprocessing and correcting transport blocks. Thus, such a specializedprocessing circuit (e.g., ASIC) may be one example of a means forexecuting the algorithms, methods, and/or blocks described in FIGS. 4,5, 6, 7, 8 and/or 9 (and/or FIGS. 14, 15, 16 and 17). Themachine-readable storage medium may store instructions that whenexecuted by a specialized processing circuit (e.g., ASIC) causes thespecialized processing circuit to perform the algorithms, methods,and/or blocks described herein.

FIG. 12 is a block diagram illustrating selected and exemplarycomponents of an access node such as an eNB or other transmitting device1200. The access node 1200 includes a processing circuit 1202 and awireless transceiver 1204 having a transmitter 1206 and a receiver 1208.The processing circuit 1202 includes, in this example, a transport blockwithout redundancy generator 1210 operative to encode data into one ormore transport blocks, each transport block including a set of codeblocks in which the data is encoded without redundancy. A transportblock transmission controller 1212 is operative to control the wirelesstransmission (via transmitter 1206) of the transport blocks over achannel specific to a receiving device (such as the mobile device ofFIG. 13, discussed below), wherein the code blocks within the transportblocks are transmitted without redundant parity code blocks or with adesired amount of redundant parity code blocks. A code block error countreception controller 1214 receives, from the mobile device (via receiver1208), a total number of failed code blocks from the transmittedtransport blocks. An error correction code generator 1216 generates anerror correction code over the code blocks within the transport blocks,wherein the error correction code is sufficient to recover the totalnumber of failed code blocks. For example, the error correction code mayinclude parities that are sufficiently long to recover the total numberof failed code blocks. A transport block with redundancy generator 1218is operative to encode new data into one or more new transport blockswith redundancy, where each new transport block includes a set of codeblocks in which the data is encoded and where one or more parity blockscontain the error correction code with coded bits transmitted withinparity code blocks of the new transport block. A parity block insertioncontroller 1220 may control the generation and insertion of the parityblocks into the new transport blocks. The parity block insertioncontroller 1220 and/or the error correction code generator 1216 may takeinto account an expected puncturing rate within the transmission of thesubsequent transport block in determining the parity blocks to beinserted and may choose different interleaving patterns to insert parityCBs into new data CBs.

As explained above, depending upon the number of failed code blocks,reception of an indication of the failed code blocks may entail orinvolve a MAC HARQ and/or a PHY HARQ. The reception and response to MACHARQs are controlled by a MAC HARQ), reception controller 1222. Thereception and response to PHY HARQs are controlled by a PHY HARQcontroller 1224. If the total number of failed code blocks is below thethreshold described above, the errors are corrected via the newtransport blocks that include the added error correction code.Otherwise, errors can be corrected by retransmitting the whole (orentire) previous transport block under control of a whole blockretransmit request controller 1226. Suitable acknowledgement (ACK)signals are received under the control of an acknowledgement receptioncontroller 1228. As explained above, acknowledgement signals may be sentby the UE subject to a controllable gap or delay, depending on whetherthe UE is configured to attempt to decode all of the code blocks of atransport block before sending the ACK or all but the last code block ofthe transport block. As such, in some examples, a new transport block issent by the access node following a delay sufficient to allow the UE todecode all of the code blocks of a prior transport block so that anerror in any of the code blocks of the prior transport can be correctedusing the error correction code within the new transport block. In otherexamples, the new transport block is sent by the access node without adelay sufficient to allow the UE to decode all of the code blocks of thereceived transport block so that errors in the last code block of thetransport block are recovered using MAC layer error correction. This iscontrolled by the transport block transmission controller 1222, inconjunction with other components such as the acknowledgement receptioncontroller 1228 and the MAC and PHY HARQ reception controllers 1222 and1224.

Depending upon the implementation, the functions and operations of theabove-described devices and components may be performed by othersuitable components that perform the same or similar functions. As such,in some examples, an apparatus, system or device is provided thatincludes: a means for processing and means for transceiving (e.g.,transmitting/receiving) that may include a means for transmitting and ameans for receiving. The means for processing may include means forgenerating a transport block without redundancy that is operative toencode data into one or more transport blocks, each transport blockincluding a set of code blocks in which the data is encoded. A means forcontrolling transport block transmission is operative to control thewireless transmission (via transmitter 1206) of the transport blocksover a channel specific to a receiving device (such as the mobile deviceof FIG. 13, discussed below), wherein the code blocks within thetransport blocks are transmitted without redundant parity code blocks orwith a desired amount of redundant parity code blocks. A means forcontrolling the reception of a code block error count is operative toreceive, from the mobile device (via receiver 1108), the total number offailed code blocks from the transmitted transport blocks. A means forgenerating error correction code is operative to generate an errorcorrection code over the code blocks within the transport blocks,wherein the error correction code is sufficient to recover the totalnumber of failed code blocks. As noted, the error correction code mayinclude parities that are sufficiently long to recover the total numberof failed code blocks.

Means for generating a transport block with redundancy is operative toencode previous data CBs or/and new data CBs into one or more newtransport blocks, each new transport block including a set of codeblocks in which the data is encoded and one or more parity blockscontaining the error correction code with coded bits transmitted withinparity code blocks of the new transport block. A means for controllingthe insertion of parity blocks is operative to control the generationand insertion of the parity blocks into the new transport blocks. Themeans for controlling the insertion of parity blocks and/or the meansfor generating error correction codes may take into account the expectedpuncturing rate within the transmission of the subsequent transportblock in determining the parity blocks to be inserted. Still further,the apparatus may exploit a means for receiving and responding to a MACHARQ and/or a means for receiving and responding a PHY HARQ. Suitableacknowledgement (ACK) signals are received and responded to under thecontrol of means for receiving acknowledgement signals. In someexamples, a means for retransmitting is operative to control theretransmission of a whole or entire block.

Still further, depending upon the implementation, the functions andoperations of the above-described devices and components may beimplemented as instructions for use with a machine-readable storagemedium. As such, in some examples, instructions are provided thatinclude: instructions for processing performed by a processor andinstructions for transceiving (e.g., transmitting/receiving) performedby a transceiver that may include further instructions for transmittingand instructions for receiving. The instructions for processing mayinclude instructions for generating a transport block without redundancythat is operative to encode data into one or more transport blocks, eachtransport block including a set of code blocks in which the data isencoded. Instructions for controlling transport block transmission areoperative to control the wireless transmission (via transmitter 1106) ofthe transport blocks over a channel specific to a receiving device (suchas the mobile device of FIG. 12, discussed below), wherein the codeblocks within the transport blocks are transmitted without redundantparity code blocks or with a desired amount of redundant parity codeblocks. Instructions for controlling the reception of a code block errorcount are operative to receive, from the mobile device (via receiver1108), the total number of failed code blocks from the transmittedtransport blocks. Instructions for generating error correction code areoperative to generate an error correction code over the code blockswithin the transport blocks, wherein the error correction code issufficient to recover the total number of failed code blocks. As noted,the error correction code may include parities that are sufficientlylong to recover the total number of failed code blocks.

Instructions for generating a transport block with redundancy areoperative to encode new data into one or more new transport blocks, eachnew transport block including a set of code blocks in which the data isencoded and one or more parity blocks containing the error correctioncode with coded bits transmitted within parity code blocks of the newtransport block. Instructions for controlling the insertion of parityblocks are operative to control the generation and insertion of theparity blocks into the new transport blocks. The instructions forcontrolling the insertion of parity blocks and/or the instructions forgenerating error correction codes may take into account the expectedpuncturing rate within the transmission of the subsequent transportblock in determining the parity blocks to be inserted. Still further,the apparatus may exploit instructions for receiving and responding to aMAC HARQ and/or instructions for receiving and responding a PHY HARQ.Suitable acknowledgement (ACK) signals are received and responded tounder the control of instructions for receiving acknowledgement signals.In some examples, instructions for retransmitting are operative tocontrol the retransmission of a whole or entire block.

FIG. 13 is a block diagram illustrating selected and exemplarycomponents of a UE or other mobile device (receiving device) 1300. Themobile device 1300 includes a processing circuit 1302 and a wirelesstransceiver 1304 having a transmitter 1306 and a receiver 1308. Theprocessing circuit 1302 includes, in this example, a transport blockreception controller 1310 operative to receive one or more transportblocks via the receiver 1308 over a channel from an access node or othertransmitting device, where each transport block includes a plurality ofcode blocks in which data is encoded, the code blocks within thetransport blocks are received without redundant parity code blocks orwith a desired amount of redundant parity code blocks. A transport blockdecoder 1312 attempts to decode data in the code blocks received withinthe one or more transport blocks. A code block error detector 1314detects decoding errors, which might be the result of burstyinterference from, for example: 1) intercell mission critical signaling;2) short TTIs and/or 3) unlicensed hand transmissions. A code blockerror counter 1314 counts the total number of failed code blocks withinone or more of the transport blocks. The processor then sends, to theaccess node other transmitting device, the total number of failed codeblocks within the received one or more transport blocks. As explainedabove, depending upon the number of failed code blocks, this may entaila MAC HARQ or a PHY HARQ. The generation and transmission of MAC HARQsare controlled by a MAC HARQ controller 1322. The generation andtransmission of PHY HARQs are controlled by a PHY HARQ controller 1324.If the total number of failed code blocks is below the thresholddescribed above, a code block recovery system 1318 is operative torecover the failed code blocks using the error correction code of anewly received transport block, in conjunction with a parity blockanalyzer 1320 that analyzes parity code blocks within the newly receivedtransport block.

Suitable acknowledgement (ACK) signals are generated and transmittedunder the control of an acknowledgement controller 1326. As explainedabove acknowledgement signals may be sent subject to a controllable gapor delay, depending on whether the UE is configured to attempt to decodeall of the code blocks before sending the ACK or all but the last codeblock of the received transport block. In some examples, the ACK is sentfollowing a delay sufficient to allow the receiver to decode all of thecode blocks of a prior or initial transport block so that an error inany of the code blocks of the prior transport can be corrected using theerror correction code within a new transport block. In other examples,the ACK is sent without a delay sufficient to allow the receiver todecode all of the code blocks of the received transport block so thaterrors in the last code block of the transport block are recovered usinga media access control (MAC) layer error correction. Thus, in someexamples, the processor of the UE requests that the whole or entireblock be retransmitted. This may be performed under the control of awhole block retransmit request controller 1328.

Depending upon the implementation, the functions and operations of theabove-described devices and components may be performed by othersuitable components that perform the same or similar functions. As such,in some examples, an apparatus, system or device is provided thatincludes: a means for processing and means for transceiving that mayinclude a means for transmitting and a means for receiving. The meansfor processing may include means for receiving a transport block thatincludes means for receiving one or more transport blocks over a channelfrom an access node or other transmitting device, where each transportblock includes a plurality of code blocks in which data is encoded, thecode blocks within the transport blocks being received without redundantparity code blocks or with a desired amount of redundant parity codeblocks. A means for decoding attempts to decode data in the code blocksreceived within the one or more transport blocks. A means for detectingoperates to detect decoding errors, which might be the result of burstyinterference. A means for counting operates to count the total number offailed code blocks within one or more of the transport blocks. A meansfor sending operates to send, to the access node other transmittingdevice, the total number of failed code blocks within the received oneor more transport blocks. This may exploit a means for sending a MACHARQ and/or a means for sending a PHY HARQ. A means for recovery isoperative to recover the failed code blocks using the error correctioncode of a newly received transport block, in conjunction with a meansfor analyzing parity blocks that analyzes parity code blocks within thenewly received transport block. Suitable acknowledgement (ACK) signalsare generated and transmitted under the control of means for generatingacknowledgement signals. In some examples, a means for requestingretransmission is operative to requests that the whole or entire blockbe retransmitted.

Still further, depending upon the implementation, the functions andoperations of the above-described devices and components may beimplemented as instructions for use with a machine-readable storagemedium. As such, in sonic examples, instructions are provided thatinclude: instructions for processing performed by a processor andinstructions for transceiving performed by a transceiver that mayinclude further instructions for transmitting and instructions forreceiving. The instructions for processing may include instructions forreceiving a transport block that includes instructions for receiving oneor more transport blocks over a channel from an access node or othertransmitting device, where each transport block includes a plurality ofcode blocks in which data is encoded, the code blocks within thetransport blocks being received without redundant parity code blocks orwith a desired amount of redundant parity code blocks. Instructions fordecoding attempt to decode data in the code blocks received within theone or more transport blocks. Instructions for detecting operate todetect decoding errors, which might be the result of busty interference.Instructions for counting operate to count the total number of failedcode blocks within one or more of the transport blocks. Instructions forsending operate to send, to the access node other transmitting device,the total number of failed code blocks within the received one or moretransport blocks. This may exploit instructions for sending a MAC HARQand/or instructions for sending a PHY HARD). Instructions for recoveryare operative to recover the failed code blocks using the errorcorrection code of a newly received transport block, in conjunction withinstructions for analyzing parity blocks that analyzes parity codeblocks within the newly received transport block. Suitableacknowledgement (ACK) signals are generated and transmitted under thecontrol of instructions for generating acknowledgement signals. In someexamples, instructions for requesting retransmission are operative torequest that the whole or entire block be retransmitted.

FIG. 14 is a flow diagram illustrating a method operational on atransmitting device such as an access node. Data may be encoded into oneor more transport blocks, each transport block including a plurality ofcode blocks in which the data is encoded 1402. The one or more transportblocks may be wirelessly transmitted over a channel specific to areceiving device, wherein the code blocks within the transport blocksare transmitted without redundant parity code blocks (or otherredundancy information) or with a desired amount of redundant paritycode blocks (or other redundancy information) 1404. The transmittingdevice may receive, from the receiving device, a total number of failedcode blocks from the transmitted one or more transport blocks 1406. Thetransmitting device generates or otherwise obtains an error correctioncode over the code blocks within the one or more transport blocks,wherein the error correction code is sufficient to recover the totalnumber of failed code blocks 1408 (e.g. wherein the number of paritiesin the error correction code is sufficiently long to recover the totalnumber of failed code blocks). The error correction code is thentransmitted within a new or subsequent transport block 1410 (e.g. thecoded bits or parities of the error correction code are transmittedwithin parity code blocks of the subsequent transport block). Asexplained above, the total number of failed code blocks may be receivedover a MAC layer transmission. Additional new data code blocks may alsobe transmitted along with the error correction parity code blocks,wherein the error correction code may or may not also cover the new datacode blocks. According to one aspect, a PHY layer transmission may bereceived from the receiving device indicating whether the one or moretransport blocks should be retransmitted in whole. The one or moretransport blocks may be retransmitted, in whole, to the receivingdevice. These additional features are illustrated in FIG. 15, which alsoprovides further exemplary details of other features of the method ofFIG. 14.

FIG. 15 is a flow diagram further illustrating a method operational on atransmitting device such as an access node. The access node encodesvoice data or other data into one or more transport blocks, eachtransport block including a set of code blocks in which the data isencoded for transmission to a mobile device or other receiving device inaccordance with 5G or other suitable wireless communication protocols1502. The access node wirelessly transmits the one or more transportblocks over a channel specific to the mobile device or other receivingdevice, wherein the code blocks within the transport blocks aretransmitted without redundant parity code blocks (or with a desiredamount of redundant parity code blocks or other redundancy information)1504. The access node receives, from the mobile device or otherreceiving device via a MAC HARQ, a total number of failed code blockswithin the one or more transport blocks previously transmitted to thereceiving device 1506.

The access node generates or otherwise obtains an error correction codeover the code blocks within the one or more transport blocks, where theerror correction code is sufficient to recover the total number offailed code blocks, and, for example, where (a) the error correctioncode includes parities sufficiently long to recover the total number offailed code blocks, where (b) the error correction code includes codedhits to be transmitted within parity code blocks of a new transportblock and where (c) the error correction code is determined or adjustedbased on the total number of failed code blocks and on an expectedpuncturing rate over the channel within the transmission of the newtransport block to a mobile device of other receiver device 1508. Inthis manner, a reliability and efficiency tradeoff can be achieved byadjusting the amount of redundancy upon retransmission by adjusting theerror correction codes.

The access node transmits the error correction code within a new orsubsequent transport block including transmitting additional new datacode blocks along with the error correction code within the newtransport block, wherein the error correction code also covers the newdata code blocks, and where (a) the new transport block is transmittedfollowing a delay sufficient to allow the receiver to decode all of thecode blocks of a prior transport block so that an error in any of thecode blocks of the prior transport block can be corrected using theerror correction code within the new transport block or (b) where thenew transport block is transmitted without a delay sufficient to allowthe receiver to decode all of the code blocks of a prior transport blockso that an error in the prior transport block that cannot be correctedby the error correction code within the new transport block is insteadrecovered using MAC layer error correction 1510. The access nodeadditionally or alternatively, receives, from the receiving device, atransmission via a PHY HARQ indicating that the one or more transportblocks should be retransmitted in whole (i.e. entirely) and retransmitsthe one or more transport blocks in whole to the receiving device 1512.

FIG. 16 is a flow diagram illustrating a method operational on a mobiledevice other receiving device. One or more transport blocks may bereceived over a channel from an access node or other transmittingdevice, where each transport block includes a plurality of code blocksin which data is encoded, the code blocks within the transport blocksbeing received without redundant parity code blocks or with a desiredamount of redundant parity code blocks 1602. The receiving device maythen attempt to decode data in the code blocks received within the oneor more transport blocks 1604. If any code block failures are detected,a total number of failed code blocks within the received one or moretransport blocks may be sent to the transmitting device 1606. A newtransport block may be received from the transmitting device, the newtransport block including an error correction code sufficient to recoverthe total number of failed code block 1608. For example, the newtransport block may include parity code blocks that include an errorcorrection code for the code blocks within the one or more transportblocks, wherein parities of the error correction code are sufficientlylong to recover the total number of failed code block. The failed codeblocks may then be recovered by the receiving device from the errorcorrection code 1610. The total number of failed code blocks may bereceived over a MAC layer transmission. Failed code blocks may berecovered via erasure decoding, a combination of erasure decoding anderror decoding, or more powerful iterative soft input/soft outputdecoding between MAC layer coding and PHY layer coding. In someexamples, additional new data code blocks may be received along with theerror correction code, wherein the error correction code also covers thenew data code blocks. According to the one aspect, the receiving devicemay also transmit, to the transmitting device, a PHY layer transmissionindicating whether the one or more transport blocks should beretransmitted in whole. In response, the receiving device may receivethe one or more transport blocks in whole to the transmitting device.These additional features are illustrated in FIG. 17, which alsoprovides further exemplary details of other features of the method ofFIG. 16.

FIG. 17 is a flow diagram further illustrating a method operational on areceiving device such as a mobile device. The mobile device receives oneor more transport blocks over a 5G channel (or other suitable wirelesscommunication channel) from a transmitting device such as an accessnode, where each transport block includes a set of code blocks in whichdata is encoded, the code blocks within the transport blocks receivedwithout redundant parity code blocks (or with a desired amount ofredundant parity code blocks or other redundancy information) 1702. Themobile device attempts to decode data in the code blocks received withinthe one or more transport blocks despite the lack of redundant paritycode blocks 1704. The mobile device counts or otherwise determines atotal number of failed code blocks within the received one or moretransport blocks and sends an indication of the total number of failedcode blocks to the transmitting device via a MAC HARQ, if the number offailed code blocks is less than a threshold 1706. The mobile devicereceives a new transport block from the transmitting device thatincludes error correction code sufficient to recover the total number offailed code blocks, and, for example, where (a) the error correctioncode includes parities sufficiently long to recover the total number offailed code blocks, where (b) the error correction code includes codedbits within parity code blocks of a new transport block and where (c)the error correction code is based on the total number of failed codeblocks and on an expected puncturing rate over the channel 1708. Themobile device recovers the failed code blocks from the error correctioncode via erasure decoding, a combination of erasure decoding and errordecoding, or more powerful iterative soft input/soft output decodingbetween MAC layer coding and PHY layer coding 1710.

Additionally or alternatively, the mobile device (a) sends anacknowledgement to the transmitting device after a last of the codeblocks of the initial transport block has been decoded so that an errorin any of the code blocks of the initial transport block can becorrected using the error correction code within the new transport blockor (b) sends the acknowledgement before all of the code blocks of theinitial transport block have been decoded so that an error in the lastcode block of the initial transport block is instead recovered using MAClayer error correction 1712. The mobile device, additionally oralternatively, sends a transmission via a PHY HARQ to the transmittingdevice indicating that the one or more transport blocks should beretransmitted in whole (i.e. entirely) and then receives the one or moretransport blocks in whole from the transmitting device 1714.

In addition, it is noted that the embodiments may be described as aprocess that is depicted as a flowchart, a flow diagram, a structurediagram, or a block diagram. Although a flowchart may describe theoperations as a sequential process, many of the operations can beperformed in parallel or concurrently. In addition, the order of theoperations may be re-arranged. A process is terminated when itsoperations are completed. A process may correspond to a method, afunction, a procedure, a subroutine, a subprogram, etc. When a processcorresponds to a function, its termination corresponds to a return ofthe function to the calling function or the main function.

Moreover, a storage medium may represent one or more devices for storingdata, including read-only memory (ROM), random access memory (RAM),magnetic disk storage mediums, optical storage mediums, flash memorydevices, and/or other machine readable mediums for storing information.The term “machine readable medium” includes, but is not limited toportable or fixed storage devices, optical storage devices, wirelesschannels and various other mediums capable of storing, containing, orcarrying instruction(s) and/or data.

The methods or algorithms described in connection with the examplesdisclosed herein may be embodied directly in hardware, in a softwaremodule executable by a processor, or in a combination of both, in theform of processing unit, programming instructions, or other directions,and may be contained in a single device or distributed across multipledevices. A software module may reside in RAM memory, flash memory, ROMmemory, EPROM memory, EEPROM memory, registers, hard disk, a removabledisk, a CD-ROM, or any other form of storage medium known in the art. Astorage medium may be coupled to the processor such that the processorcan read information from, and write information to, the storage medium.In the alternative, the storage medium may be integral to the processor.

Those of skill in the art would further appreciate that the variousillustrative logical blocks, modules, circuits, and algorithm stepsdescribed in connection with the embodiments disclosed herein may beimplemented as electronic hardware, computer software, or combinationsof both. To clearly illustrate this interchangeability of hardware andsoftware, various illustrative components, blocks, modules, circuits,and steps have been described above generally in terms of theirfunctionality. Whether such functionality is implemented as hardware orsoftware depends upon the particular application and design constraintsimposed on the overall system.

The various features of the invention described herein can beimplemented in different systems without departing from the invention.It should be noted that the foregoing embodiments are merely examplesand are not to be construed as limiting the invention. The descriptionof the embodiments is intended to be illustrative, and not to limit thescope of the claims. As such, the present teachings can be readilyapplied to other types of apparatuses and many alternatives,modifications, and variations will he apparent to those skilled in theart.

What is claimed is:
 1. A method operational on a transmitting device,comprising: encoding data into one or more transport blocks, eachtransport block including a plurality of code blocks in which the datais encoded; wirelessly transmitting the one or more transport blocksover a channel specific to a receiving device, wherein the code blockswithin the transport blocks are transmitted without redundancyinformation or with a desired amount of redundancy information;receiving, from the receiving device, a total number of failed codeblocks from the transmitted one or more transport blocks; generating anerror correction code over the code blocks within the one or moretransport blocks, wherein the error correction code is sufficient torecover the total number of failed code blocks; and transmitting theerror correction code within a new transport block.
 2. The method ofclaim 1, wherein the redundancy information comprises redundant paritycode blocks.
 3. The method of claim 1, wherein the error correction codeincludes parities that are sufficiently long to recover the total numberof failed code blocks.
 4. The method of claim 3, wherein the errorcorrection code includes coded bits that are transmitted within paritycode blocks of the new transport block.
 5. The method of claim 4,wherein the error correction code is determined based on the totalnumber of failed code blocks and on an expected puncturing rate withinthe transmission of the new transport block.
 6. The method of claim 1,wherein the total number of failed code blocks is received over a mediaaccess control (MAC) layer transmission.
 7. The method of claim 1,further comprising: transmitting additional new data code blocks alongwith the error correction code within the new transport block.
 8. Themethod of claim 7, wherein the error correction code only covers thecode blocks within the one or more transport blocks in a previous mediaaccess control (MAC)layer hybrid automatic repeat request (HARQ)transmission.
 9. The method of claim 7, wherein the error correctioncode also covers the new data code blocks.
 10. The method of claim 1,further comprising: receiving from the receiving device, a transmissionindicating that the one or more transport blocks should be retransmittedin whole; and retransmitting the one or more transport blocks in wholeto the receiving device.
 11. The method of claim 10, wherein thetransmission indicating that the one or more transport blocks should beretransmitted in whole is received via a physical (PHY) layer hybridautomatic repeat request (HARQ).
 12. The method of claim 1, wherein thenew transport block is transmitted following a delay sufficient to allowthe receiving device to decode all of the code blocks of a priortransport block so that an error in any of the code blocks of the priortransport block can be corrected using the error correction code beforea next transmission time interval starts.
 13. The method of claim 1,wherein the new transport block is transmitted without a delaysufficient to allow the receiving device to decode all of the codeblocks of a prior transport block and wherein an error in the priortransport block that cannot be corrected by the error correction codewithin the new transport block is instead recoverable using a mediaaccess control (MAC) layer error correction and one or more hybridautomatic repeat request (HARQ).
 14. A transmitting device, comprising:a wireless transceiver coupled to the processing circuit and adapted towirelessly transmit to one or more receiving devices; and a processingcircuit coupled to the wireless transceiver and adapted to encode datainto one or more transport blocks, each transport block including aplurality of code blocks in which the data is encoded; wirelesslytransmit the one or more transport blocks over a channel specific to areceiving device, wherein the code blocks within the transport blocksare transmitted without redundancy information or with a desired amountof redundancy information; receive, from the receiving device, a totalnumber of failed code blocks from the transmitted plurality of one ormore transport blocks; generate an error correction code over the codeblocks within the one or more transport blocks, wherein the errorcorrection code is sufficient to recover the total number of failed codeblocks; and transmit the error correction code within a new transportblock.
 15. The transmitting device of claim 14, wherein the redundancyinformation comprises redundant parity code blocks.
 16. The transmittingdevice of claim 14, wherein the error correction code generated by theprocessing circuit includes parities that are sufficiently long torecover the total number of failed code blocks.
 17. The transmittingdevice of claim 16, wherein the error correction code generated by theprocessing circuit includes coded bits that are transmitted withinparity code blocks of the new transport block.
 18. The transmittingdevice of claim 14, wherein the error correction code generated by theprocessing circuit is determined based on the total number of failedcode blocks and on an expected puncturing rate within the transmissionof the new transport block.
 19. The transmitting device of claim 14,wherein the total number of failed code blocks is received over a mediaaccess control (MAC) layer transmission.
 20. The transmitting device ofclaim 14, wherein the processing circuit further adapted to: transmitadditional new data code blocks along with the error correction code.21. The transmitting device of claim 20, wherein the processing circuitis further adapted to: receive, from the receiving device, atransmission indicating that the one or more transport blocks should beretransmitted in whole; and retransmit the one or more transport blocksin whole to the receiving device.
 22. The transmitting device of claim21, wherein the transmission indicating that the one or more transportblocks should be retransmitted in whole is received via a physical (PHY)layer hybrid automatic repeat request (HARQ).
 23. The transmittingdevice of claim 14, wherein the new transport block is transmittedfollowing a delay sufficient to allow the receiving device to decode allof the code blocks of a prior transport block so that an error in any ofthe code blocks of the prior transport can be corrected using the errorcorrection code within the new transport block.
 24. The transmittingdevice of claim 14, wherein the new transport block is transmittedwithout a delay sufficient to allow the receiver to decode all of thecode blocks of a prior transport block and wherein an error in the priortransport block that cannot be corrected by the error correction codewithin the new transport block is instead recoverable using a mediaaccess control (MAC) layer error correction.
 25. A method operational ona user equipment, comprising: receiving one or more transport blocksover a channel from a transmitting device, where each transport blockincludes a plurality of code blocks in which data is encoded, the codeblocks within the transport blocks received without redundancyinformation or with a desired amount of redundancy information;attempting to decode data in the code blocks received within the one ormore transport blocks; sending, to the transmitting device, a totalnumber of failed code blocks within the received one or more transportblocks; receiving a new transport block including an error correctioncode sufficient to recover the total number of failed code blocks; andrecovering the failed code blocks from the error correction code. 26.The method of claim 25, wherein the redundancy information comprisesredundant parity code blocks.
 27. The method of claim 25, wherein theerror correction code includes parities that are sufficiently long torecover the total number of failed code blocks.
 28. The method of claim27, wherein the error correction code includes coded bits that arereceived within parity code blocks of the new transport block.
 29. Themethod of claim 25, wherein the total number of failed code blocks istransmitted over a media access control (MAC) layer transmission. 30.The method of claim 25, further comprising: receiving additional newdata code blocks along with the error correction code, wherein the errorcorrection code also covers the new data code blocks.
 31. The method ofclaim 25, further comprising: transmitting, to the transmitting device,a transmission indicating that the one or more transport blocks shouldbe retransmitted in whole; and receiving the one or more transportblocks retransmitted in whole from the transmitting device.
 32. Areceiving device, comprising: a wireless transceiver; and a processingcircuit coupled to the wireless transceiver and adapted to: receive oneor more transport blocks over a channel from a transmitting device,where each transport block includes a plurality of code blocks in whichdata is encoded, the code blocks within the transport blocks receivedwithout redundancy information or with a desired amount of redundancyinformation; attempt to decode data in the code blocks received withinthe one or more transport blocks; send, to the transmitting device, atotal number of failed code blocks within the received one or moretransport blocks; receive a new transport block including an errorcorrection code sufficient to recover the total number of failed codeblocks; and recover the failed code blocks from the error correctioncode.
 33. The receiving device of claim 32, wherein the redundancyinformation comprises redundant parity code blocks.
 34. The receivingdevice of claim 32, wherein the error correction code includes paritiesthat are sufficiently long to recover the total number of failed codeblocks.
 35. The receiving device of claim 34, wherein the errorcorrection code includes coded bits that are received within parity codeblocks of the new transport block.
 36. The receiving device of claim 32,wherein the processing circuit is further adapted to: transmit, to thetransmitting device, a transmission indicating whether the one or moretransport blocks should be retransmitted in whole; and receive the oneor more transport blocks retransmitted in whole to the transmittingdevice.